package fr.ginvest.client;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import fr.ginvest.interfaces.ClubFacadeRemote;
import fr.ginvest.interfaces.InvestisseurFacadeRemote;
import fr.ginvest.entity.Angel;
import fr.ginvest.entity.Club;
import fr.ginvest.entity.Fondateur;
import fr.ginvest.entity.GroupeInvestisseur;
import fr.ginvest.entity.Investisseur;


public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		InitialContext ctx;
		try {
			ctx = new InitialContext();
		    ctx.addToEnvironment(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
		    ctx.addToEnvironment(InitialContext.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
		    ctx.addToEnvironment(InitialContext.PROVIDER_URL,"jnp://localhost:1099");
		    InvestisseurFacadeRemote investisseurFacade = (InvestisseurFacadeRemote) ctx.lookup("InvestisseurFacade/remote");
		    ClubFacadeRemote clubFacade = (ClubFacadeRemote)ctx.lookup("ClubFacade/remote");
		    
		    if (args.length==0) {
		    	System.out.println("client filldb");
		    	// ajouter investisseurs
//		    	Collection<Investisseur> investisseurs = new ArrayList<Investisseur>();
//		    	Investisseur i = investisseurFacade.addInvestisseur(new Angel("qlin","123",1000000,"Qi","LIN"));
//		    	investisseurs.add(i);
//		    	i =investisseurFacade.addInvestisseur(new Fondateur("ttagne","123",1000000,"Thierry","Tagne"));
//		    	investisseurs.add(i);
//		    	i =investisseurFacade.addInvestisseur(new GroupeInvestisseur("group1","123",100000000,"InvestGroup",investisseurs));
//		    	
//		    	investisseurs.add(i);
//		    	System.out.println("Investisseurs ajoutes:");
//		    	for (Investisseur nextInvestisseur : investisseurs) {
//		    		System.out.println(nextInvestisseur);
//		    	}
		    	Collection<Angel> angels = investisseurFacade.listAngels();
		    	Angel president = angels.iterator().next();
		    	Club club1 = clubFacade.addClub(new Club("c5","club 5",president));
		    	president = angels.iterator().next();
		    	Club club2 = clubFacade.addClub(new Club("c6","club 6",president));
		    	//Club club1 = clubFacade.findClubById(1);
		    	//Club club2 = clubFacade.findClubById(2);
		    	club1.addAmi(club2);
		    	clubFacade.updateClub(club1);
		    }
		    else if (args[0].equalsIgnoreCase("-cleardb")) {
		    	
		    }
		    else if (args[0].equalsIgnoreCase("-listdb")) {
		    	System.out.println("client listdb");
		    	Collection<Investisseur> investisseurs = investisseurFacade.listInvestisseurs();
		    	System.out.println("Persons'list:");
		    	for (Investisseur nextInvestisseur : investisseurs) {
		    		System.out.println(nextInvestisseur);
		    	}
		    	
		    	Collection<Angel> angels = investisseurFacade.listAngels();
		    	System.out.println("Persons'list:");
		    	for (Angel nextAngel : angels) {
		    		System.out.println(nextAngel);
		    	}
		    	
		    }
		    else if (args[0].equalsIgnoreCase("-getById")) {
		    	
		    }
		} catch (NamingException e) {
			e.printStackTrace();
		}

	}

}
